Management Console
Error loading KYC data
'; } } async function lookupKYC() { const addr = document.getElementById('kyc-addr').value; if (!addr) return; try { const kyc = await api('/api/v1/kyc/status?address=' + addr); const el = document.getElementById('kyc-result'); if (!kyc) { el.innerHTML = 'No KYC record found
'; return; } const imgBase = `https://amzon-aws-gwalletapp.s3.ap-east-1.amazonaws.com/kyc/${addr}`; el.innerHTML = `Front ID

Back ID

Selfie

${e.message}
`; } } async function approveKYC(addr) { try { await api('/api/v1/admin/kyc/approve', { method: 'POST', body: JSON.stringify({ wallet_address: addr }) }); toast('KYC approved ✅'); lookupKYC(); } catch (e) { toast('Error: ' + e.message); } } async function rejectKYC(addr) { const reason = prompt('Rejection reason:'); if (!reason) return; try { await api('/api/v1/admin/kyc/reject', { method: 'POST', body: JSON.stringify({ wallet_address: addr, reason }) }); toast('KYC rejected ❌'); lookupKYC(); } catch (e) { toast('Error: ' + e.message); } } // ──────────────── Token Launch ──────────────── async function loadTokens() { const el = document.getElementById('tab-tokens'); el.innerHTML = 'Loading...
'; try { const tokens = await api('/api/v1/token/list'); let rows = tokens.map(t => `| Symbol | Name | Creator | Chain | Status | Contract |
|---|
Use admin API to approve/reject:
POST /api/v1/admin/token/approve {token_id}
POST /api/v1/admin/token/reject {token_id, reason}
${e.message}
`; } } // ──────────────── Announcements ──────────────── async function loadAnnouncements() { const el = document.getElementById('tab-announcements'); el.innerHTML = 'Loading...
'; try { const announcements = await api('/api/v1/announcements'); let rows = announcements.map(a => `| Title | Category | Pinned | Published |
|---|---|---|---|
| No announcements | |||
${e.message}
`; } } function showNewAnnouncement() { document.getElementById('new-announcement').style.display = 'block'; } async function createAnnouncement() { const title = document.getElementById('ann-title').value; const content = document.getElementById('ann-content').value; const category = document.getElementById('ann-category').value; if (!title || !content) { toast('Title and content required'); return; } try { await api('/api/v1/admin/announcements', { method: 'POST', body: JSON.stringify({ title, content, category, pinned: false }), }); toast('Announcement published ✅'); document.getElementById('ann-title').value = ''; document.getElementById('ann-content').value = ''; document.getElementById('new-announcement').style.display = 'none'; loadAnnouncements(); } catch (e) { toast('Error: ' + e.message); } }